Image Application Performance Optimization

ABSTRACT

Some embodiments provide an image editing application that allows users to quickly preview images and to edit images. The image-editing application provides a quick preview tool for foregoing the loading of a particular image in the display area after the particular image has been selected. Specifically, for each particular image, the image-editing application maintains or generates a preview image for the particular image. In place of a particular image, the quick preview tool when selected causes the image editing application to only load the preview image of the particular image for full or partial display in the display area. When the quick preview tool is not selected, the image editing application loads each image in its entirety for full or partial display in the display area.

CLAIM OF BENEFIT TO PRIOR APPLICATIONS

This application claims the benefit of U.S. Provisional Application,entitled “Image Application Performance Optimization,” filed Feb. 11,2008 with attorney docket number APLE.P0120. U.S. ProvisionalApplication with attorney docket number APLE.P0120 was originally filedas a Non-Provisional U.S. application and was assigned application Ser.No. 12/029,462. One Jun. 12, 2008, a petition was filed to convert U.S.application Ser. No. 12/029,462 to a Provisional Application. Thecontents of U.S. Provisional Application with attorney docket numberAPLE.P0120 are hereby incorporated by reference.

FIELD OF THE INVENTION

The present invention relates to image processing tools and inparticular to preview of images prior to editing.

BACKGROUND OF THE INVENTION

Image processing applications are tools that allow management of digitalimages. Image processing applications allow a user to import digitalimages, perform photo edits, adjust and retouch images, publish imageson the web or in print, export images, and back up the images. After agroup of images are imported, a user often sorts through the images tochoose the images that the user wants to work with and further adjust.

One desirable feature of an image processing application is to providehigh-resolution previews to allow a user to review, rate, and organizethe images. Many of today's digital images are, however, very large,resulting in long delays when a user is previewing high resolutionimages. There is, therefore, a need in the art for an image processingapplication to provide quick preview of high resolution images withoutcausing long delays when loading high-resolution images for preview.

SUMMARY OF THE INVENTION

Some embodiments provide an image editing application that allows usersto quickly preview images and to edit images. In some embodiments, theimage editing application provides one or more tools for organizingimages. The image editing application also provides a display area fordisplaying a selected image. It also provides at least one tool forediting the images that are displayed in the display area.

The image-editing application further provides a quick preview tool forforegoing the loading of a particular image in the display area afterthe particular image has been selected. Specifically, for eachparticular image, the image-editing application maintains or generates apreview image. In place of a particular image, the quick preview toolwhen selected causes the image editing application to only load thepreview image of the particular image for full or partial display in thedisplay area. When the quick preview tool is not selected, the imageediting application loads each image in its entirety for full or partialdisplay in the display area.

The quick preview tool allows users to speed up the image editingprocess. This is because a user can activate the quick preview tool toload and review images quickly in the display area when the user doesnot need to make any edits to the images, while deactivating the quickpreview tool to load images in their entirety when the user wishes toview them in their entirety. A user might wish to view an image insteadof its preview in the display area because the user wishes to edit theimage and the editing application of some embodiments allows a user tospecify image modifications to only the actual images and not theirpreviews.

Because the image editing application of some embodiments does not allowa user to specify image modifications when viewing preview images in thedisplay area, the editing application of some of these embodiments makesthe editing tools not accessible to a user when the quick preview toolhas been selected. This provides notification to the user that the quickpreview tool has been selected. Instead of or in conjunction with thisnotification, the image editing application of some embodiments providesother indications of the selection of the quick preview tool. Examplesof such indications include placing a mark (e.g., a “Quick Preview”mark) on the display area, placing a mark (e.g., a “P”) on the image,highlighting or otherwise marking a selected thumbnail of the image thatis being previewed, etc.

While the editing application of some embodiments does not allow a userto specify image modifications when the quick preview tool has beenactivated, the editing application of other embodiments can allow a userto specify such modifications while providing quick previews. Moreover,even some embodiments that do not allow modifications during quickpreview, do allow a user to exit quick preview by selecting all or someof the editing tools. These embodiments do not make the editing toolsinaccessible during quick preview.

For instance, the image editing application of some embodiments providesan automated way of exiting quick preview by detecting that the userwants to perform operations (e.g., edit operations) that would requirethe actual image to be loaded in the display area. Some of theseembodiments not only have the editing application exit quick preview inan automated way, but also have the application enter quick preview inan automated way. For instance, in some embodiments, the applicationexits quick preview when the user selects a cropping tool for an image,but automatically re-enter quick preview after the user is done editingthe image (e.g., when selecting a non-editing tool).

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth in the appendedclaims. However, for purpose of explanation, several embodiments are setforth in the following figures.

FIG. 1 illustrates an example of a user interface of an image-editingapplication of some embodiments.

FIG. 2 illustrates an image displayed in some embodiments after acontrol is selected to display the image in full size.

FIG. 3 illustrates a quick preview image displayed when quick preview isenabled in some embodiments.

FIG. 4 illustrates several ways of enabling and disabling quick previewin some embodiments.

FIG. 5 illustrates a master image displayed when quick preview is turnedoff in some embodiments.

FIG. 6 illustrates an image that is being loaded for display in theimage display area of some embodiments when the quick preview is turnedoff.

FIG. 7 illustrates the same image of FIG. 6 after being loaded.

FIG. 8 illustrates an image that is displayed in quick preview mode insome embodiments.

FIG. 9 illustrates a master image in some embodiments with a visual cueplaced on it to indicate that a master image is currently displayed.

FIG. 10 illustrates a master image and a menu displayed on full screenwhen the quick preview is disabled in some embodiments.

FIG. 11 illustrates the image of FIG. 10 when the quick preview isenabled.

FIG. 12 illustrates a quick preview image displayed on full screen witha visual cue to indicate that the quick preview is on in someembodiments.

FIG. 13 illustrates several quick preview images displayed in the imagedisplay area of some embodiments.

FIG. 14 illustrates controls and tools in some embodiments for a user toselect and stack images, add keywords or change other metadataassociated with the image when the quick preview is enabled.

FIG. 15 illustrates an image-editing application that provides optionsto select a set of preferences in some embodiments.

FIG. 16 illustrates a set of preferences provided for previews in someembodiments.

FIG. 17 illustrates examples of several options that are provided forthe resolution (or size) of the preview images in some embodiments.

FIG. 18 illustrates an image displayed at full size when quick previewis active in some embodiments.

FIG. 19 illustrates an image displayed at full size when quick previewis not active in some embodiments.

FIG. 20 illustrates a loupe tool and a master image scaled to fit thesize of the display area in some embodiments.

FIG. 21 illustrates a selected area of the image in FIG. 20 displayed to100% the size of the same area of a full size master image.

FIG. 22 illustrates a loupe tool and a scaled to fit image with quickpreview activated in some embodiments.

FIG. 23 illustrates the magnified area of the image of FIG. 22 in someembodiments.

FIG. 24 illustrates an image displayed in full size with quick previewactivated in some embodiments.

FIG. 25 illustrates an image displayed in full size with quick previewnot activated in some embodiments.

FIG. 26 illustrates a loupe that is set to enlarge to 200% of the matersize in some embodiments.

FIG. 27 conceptually illustrates a process for performing quick previewin some embodiments.

FIG. 28 conceptually illustrates a process for generating the quickpreview after the master image is edited in some embodiments.

FIG. 29 conceptually illustrates a process for generating the quickpreview in some embodiments.

FIG. 30 conceptually illustrates a process that is used to import animage into the image-editing application of some embodiments.

FIG. 31 illustrates an exemplary scenario where two different imagesmight have corresponding quick preview image of different sizes in someembodiments.

FIG. 32 conceptually illustrates an image importing tool of someembodiments.

FIG. 33 illustrates a process for zooming a displayed image in someembodiments.

FIG. 34 conceptually illustrates a process that allows editing of animage when the quick preview is activated in some embodiments.

FIG. 35 conceptually illustrates a computer system with which someembodiments of the invention are implemented.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, numerous details are set forth for thepurpose of explanation. However, one of ordinary skill in the art willrealize that the invention may be practiced without the use of thesespecific details. In other instances, well-known structures and devicesare shown in block diagram form in order not to obscure the descriptionof the invention with unnecessary detail.

I. Overview

Some embodiments provide an image editing application that allows usersto quickly preview images and to edit images. In some embodiments, theimage editing application provides one or more tools for organizingimages. The image editing application also provides a display area fordisplaying a selected image. It also provides at least one tool forediting the images that are displayed in the display area.

The image-editing application further provides a quick preview tool forforegoing the loading of a particular image in the display area afterthe particular image has been selected. Specifically, for eachparticular image, the image-editing application maintains or generates apreview image. In place of a particular image, the quick preview toolwhen selected causes the image editing application to only load thepreview image of the particular image for full or partial display in thedisplay area. When the quick preview tool is not selected, the imageediting application loads each image in its entirety for full or partialdisplay in the display area.

The quick preview tool allows users to speed up the image editingprocess. This is because a user can activate the quick preview tool toload and review images quickly in the display area when the user doesnot need to make any edits to the images, while deactivating the quickpreview tool to load images in their entirety when the user wishes toview them in their entirety. A user might wish to view an image insteadof its preview in the display area because the user wishes to edit theimage and the editing application of some embodiments allows a user tospecify image modifications to only the actual images and not theirpreviews.

Because the image editing application of some embodiments does not allowa user to specify image modifications when viewing preview images in thedisplay area, the editing application of some of these embodiments makesthe editing tools not accessible to a user when the quick preview toolhas been selected. This provides notification to the user that the quickpreview tool has been selected. Instead of or in conjunction with thisnotification, the image editing application of some embodiments providesother indications of the selection of the quick preview tool. Examplesof such indications include placing a mark (e.g., a “Quick Preview”mark) on the display area, placing a mark (e.g., a “P”) on the image,highlighting or otherwise marking a selected thumbnail of the image thatis being previewed, etc.

While the editing application of some embodiments does not allow a userto specify image modifications when the quick preview tool has beenactivated, the editing application of other embodiments can allow a userto specify such modifications while providing quick previews. Moreover,even some embodiments that do not allow modifications during quickpreview, do allow a user to exit quick preview by selecting all or someof the editing tools. These embodiments do not make the editing toolsinaccessible during quick preview.

For instance, the image editing application of some embodiments providesan automated way of exiting quick preview by detecting that the userwants to perform operations (e.g., edit operations) that would requirethe actual image to be loaded in the display area. Some of theseembodiments not only have the editing application exit quick preview inan automated way, but also have the application enter quick preview inan automated way. For instance, in some embodiments, the applicationexits quick preview when the user selects a cropping tool for an image,but automatically re-enters quick preview after the user has performedthe crop operation on the image (e.g., when selecting a non-editingtool).

The quick preview tool of some embodiments can be incorporated into anyimage editing application by way of a plug-in, applet, or directfunction incorporated within the application itself. Accordingly,different image editing applications, such as Apple Aperture®, AppleiPhoto®, Adobe Photoshop®, and Adobe Lightroom®, may implement the quickpreview tool described herein.

Such image editing applications typically have several additionalfunctionalities in addition to editing functionalities. For instance, insome embodiments, such an application provides a set of tools for (1)organizing images into different collections of images (e.g., differentdigital photo albums), (2) organizing the images by tagging images withinformative keywords, (3) organizing the images by marking selectedimages as favorites, (4) organizing the images by rating each image,etc. The image editing application can also organize the images andpublish the images on the World Wide Web, or publish the images asindividual image prints. The application can also organize the imagesinto a “photo book” of images that are sent over a network in order topublish a custom photo book, where each photo book has several pagesthat have one or more picture fields for presenting pictures. Differentphoto books can differ in their size, themes, covers, page designs, pagecolors, picture-field designs, picture-field layouts, and/or otherattributes. In some embodiments, a user can modify the page design,color, frame design, and/or other thematic aspects of a selected photobooks.

In addition to stand-alone image editing applications, the quick previewtool of some embodiments can be incorporated within the functionality ofan operating system such as Microsoft Windows® or Apple Mac OS®.Specifically, the quick preview tool of some embodiments can be a toolthat is selectable from any folder that access files within the filesystem of the operating system. The quick preview tool can also beincorporated into a portable device such as a digital cameras, iPod®,mobile phone, etc.

Several more detailed embodiments of the invention are described insections below. Specifically, Section II describes quick preview imagesand master images of some embodiments of the invention. Next, SectionIII describes different features of quick preview tool of someembodiment. Section IV then describes the quick preview processes ofsome embodiments. Finally, Section V provides a description of acomputer system with which some embodiments of the invention areimplemented.

II. Quick Preview and Master Images

A. Master Image

Some embodiments provide a nondestructive method of managing and editingimages. In these embodiments, the master images are not modified duringimage modifications. Instead, versions of master images are createdwhenever changes are made to the images (such as image adjustments orchanges to associated metadata). In some embodiments, these versionsmight be organized into albums. In some embodiments different projectscan be created to include digital master files, versions, and albums.

A master image is an original digitized image. A master image might beimported into the image-editing application from camera, memory card,computer, storage, etc. A master image is often a raw image file (alsoreferred to as RAW image file) which includes minimally processed datafrom the image sensor of a digital camera or an image scanner. The rawfiles are not processed and cannot be edited with a graphics editor.Instead, the raw file has to be converted to an RGB format such as JPEGor TIFF for editing, storage, or printing. Usually, this conversioninvolves precise corrections to preserve the colors of the image withina color space for a particular output device. Such corrections mightinvolve corrections, e.g., for exposure and sharpening. Also some rawfiles represent image pixels as a mosaic of filtered pixel values inred, green, and blue. Converting these raw files to the RGB formatrequires demosaicing (or interpolation) of these image pixels values toconvert the mosaic of filtered pixel values into a full RGB image. Otherprocessing such as noise reduction or color correction is also requiredfor raw files whether or not they are in a mosaic pattern (e.g., a Bayerpattern instead of a mosaic pattern). Also, Foveon sensors are RGB ateach sensor location and still require an expensive processing step fornoise reduction and color correction. Decoding a raw image could be verytime consuming.

Also, any adjustments a user has made on an original need to be appliedto the original prior to rendering the image. In some instances, anoriginal may not be in raw format (e.g., when the picture is taken witha camera that generates a JPEG image). Even in these instances, anoriginal image may take a long time to load when there are manyadjustments to be made to the image prior to rendering it on thedisplay. While it is typical for a master image to have its adjustmentsapplied when selected, some embodiments pre-fetch a set of candidatemaster images and apply adjustments to them before they are selected.Some embodiments use a heuristic to determine which image (or images) auser might want to display next and apply user adjustments to thesecandidate images so that the user does not have to wait each time a newimage is selected for display. For instance, in a grid of imagespresented to the user for selection, the set of candidate images mayinclude one or more of the followings: the next image locatedhorizontally after (i.e., on the right of) the current image, the imagelocated horizontally before the current image, the image located abovethe current image, or the image located below the current image. Thepre-fetch, however, does not help when the user is selecting images fordisplay in a random order or reviewing the images in quick succession.That is why quick preview is essential for improving the performance.

B. Quick Preview Image

1. Faster and Less Resources to Decode

In some embodiments, the quick preview image shown by the quick previewtool is a high resolution image (up to the resolution of the masterimage) created from the master image. Quick preview images might becompressed (e.g., JPEG images) or not compressed (e.g., TIFF images).

In contrast to a master image that may be in raw format which requires along time to decode, a quick preview image can be loaded much faster andwith less resources because it is already in a format such as JPEG orTIFF format. For instance, in order to be decoded, master images mayrequire many database accesses to inquire about information such as thetype of camera used, the raw format supported by the camera, differentcharacteristics of the image, etc. Many corrections might be required topreserve the color of the image. These processes are not required whendecoding quick preview images.

2. Includes the Adjustments of the Master Image

In some embodiments, the preview image is a digitized image thatincludes the adjustments required for the master image. In theseembodiments, the quick preview image is a rendered image with alladjustments that the master image has and, therefore, is much faster toload. Also, a quick preview image with a certain size takes the sameamount of time each time it is loaded for display as opposed to theoriginal image that takes a varying time (depending on the adjustmentsit needs) and often takes much longer to load.

3. Size and Compression Quality is User Controllable

In some embodiments, the size and the compression quality of the quickpreview images are controlled by the user. These embodiments provideoptions for a user to determine the size and compression quality ofquick preview images. These options provide for a tradeoff betweenselecting (1) larger size quick preview images which take up morestorage space but have more pixels to cover a larger display area and(2) smaller size quick preview images which take less storage space buthave fewer pixels. Also, a smaller quick preview image is faster todisplay. A user in these embodiments is, therefore, provided with anoption to tradeoff between savings in time to display versus storagespace by changing the size of quick preview images.

Similarly, for the embodiments that use a compressed format such as JPEG(as opposed to uncompressed format such as TIFF), a user can determinethe compression quality of the quick preview image. For instance, when acompressed file is generated, the compression quality can be set tomaximum to generate larger files and sharper images or the compressionquality can be set to lower quality levels to generate images with moreartifacts but with smaller file sizes.

4. Ancillary Processing and Display of Some Information is Skipped

In order to display metadata and other information about a master image,many database accesses and calculations are required to properly displaythe relevant information. For instance, metadata associated with theimage such as image date, aperture, shutter speed, exposure bias, ISOspeed rating, etc., need to be read from one or more databases,analyzed, and displayed.

In some embodiments, processing of some or all of this information isskipped for quick preview images, while in some other embodiments thisinformation is made available to the user when the quick preview isenabled. Also, some embodiments may provide options for a user toselectively display all, some, or none of this information when thequick preview is enabled. Specifically, the processes that read andanalyze image metadata, processes that adjust image metadata, processesthat generate statistical information about the image, can beselectively set to skip some or all of their relevant processing forsome or all of the image metadata.

One example of information that can be skipped for quick preview imagesis display of a histogram. Histograms display distribution of pixelvalues in the image. For instance, a histogram for luminescence may showa curve that depicts different pixel values from black to white.Generation of such a histogram can be very time consuming since everypixel in the master image must be accessed to generate the histogram.Some embodiments skip generation and display of the histograms when thequick preview is enabled. Other embodiments provide an option toselectively skip generation of histograms when quick preview is enabled.

C. Differences Between a Regular Thumbnail and a Quick Preview Image

Like a quick preview image, a regular thumbnail image can be acompressed (such as a JPEG) or not compressed (such as TIFF)representation of the image. However, in some embodiments, a quickpreview image is different than a regular thumbnail. For instance, insome embodiments, generation of one or several thumbnails for each imageis mandatory while generation of a quick preview is optional.

Also, in some embodiments, the size and the compression quality of thequick preview images are controlled by the user while the size and thecompression quality of thumbnails are determined by the image-editingtool. Also the sizes of quick preview images are generally larger thanthe size of regular thumbnails. For instance, a regular thumbnail mayhave a size of 32 pixels, 256 pixels, or 1024 pixel while the size ofthe quick preview images may be larger than 1280 pixels. All pixel sizesor resolutions in this disclosure are given for the long side of theimage (i.e., the height of a portrait image or the width of a landscapeimage). The preview image and the thumbnail images can be viewed asdifferent versions of the master image that have less information thanthe master image and are used in some embodiments to quickly display theimages.

III. Quick Preview Features

In some embodiments, the image-editing application provides a quickpreview tool for foregoing the loading of a particular image in thedisplay area after the particular image has been selected. Specifically,for each particular image, the image-editing application maintains orgenerates a preview image of the particular image.

In place of a particular image, the quick preview tool when selectedcauses the image editing application to only load the preview image ofthe particular image for full or partial display in the display area.When the quick preview tool is not selected, the image editingapplication loads each image in its entirety for full or partial displayin the display area.

Several features of the quick preview tool of some embodiments will nowbe described by reference to FIGS. 1-26. These features are features ofan image-editing application in some embodiments. Before describingthese features, a brief overview of the image-editing application isprovided in sub-section A.

A. Image-Editing Application Overview

Some embodiments provide an image editing and/or image managementapplication. For simplicity, this application is referred to as theimage editing application. In some embodiments, the image editingapplication includes a graphical user interface through which a user canview, edit, and manage images.

FIG. 1 illustrates an example of a user interface 100 of theimage-editing application of some embodiments. As shown, the userinterface includes a thumbnail display area 105 for displaying a set ofthumbnail images 110. In some embodiments, these thumbnails are quickpreview images (e.g., they include all adjustments of the master image)while in some other embodiments these thumbnails are regular thumbnails(e.g., do not include the master image adjustments). The user interfacealso includes an image display area (also called a viewer, or viewingarea) 115 for displaying one or more images 120 in more detail.

The user interface provides the option for displaying the image displayarea 115, the thumbnail display area 105, or both. The user interfacealso provides a set of menus 130 as well as a set of controls (andtools) 135 to facilitate editing, storing, filtering, stacking (i.e.,grouping together), and otherwise manipulating of the images. In someembodiments, an image is displayed in the image display area 115 when auser selects an image to be loaded by clicking on one of the thumbnails110, loading a file through a menu selection, importing a file from adevice (e.g., a camera, a hard drive, a memory card), etc.

As shown in FIG. 1, images displayed in the image display area 115 canbe scaled to fit the display area 115. Images can also be displayed infull size using a control 125, through a menu selection, or a short cutkey. FIG. 2 illustrates the image 120 displayed after the control 125 isselected to display the image in full size in some embodiments. As shownin both FIGS. 1 and 2, the thumbnail 145 of the same image is selected.Since a full size image may not fit in the image display area 115, someembodiments provide a visual indicator 225 to identify the portion ofthe image 120 currently being displayed in the image display area 115.More features and operations of the image-editing tool of someembodiments will now be described.

B. Switching Between Quick Preview and Master Images

1. Fast Enabling and Disabling of Quick Preview

Some embodiments provide quick ways for enabling and disabling the quickpreview. FIG. 3 illustrates an image 305 displayed with quick previewenabled in some embodiments. Different embodiments provide one or moreoptions to switch between master and quick preview images. For instance,FIG. 4 illustrates the user interface and displayed image as in FIG. 3after a drop down menu 430 is activated. As shown, a menu selection 405is provided to switch the quick preview on or off. A check mark 425 nextto the menu selection 405 indicates that the quick preview is currentlyenabled. In some embodiments, typing a single short cut key command suchas “P”, or a combination of keys, also switches the quick preview on andoff. As shown in FIG. 4, the menu also shows the short cut key 410assigned to switching the quick preview mode. Also, some embodimentsprovide an icon 415 to switch the quick preview mode on or off.

Some embodiments provide other ways of switching between the masterimage and quick preview image. For instance, some embodimentsautomatically switch between the two images under certain circumstances.These embodiments are described in Section IV, below.

2. Turning Quick Preview On or Off Without a Modal Switch

Some embodiments turn quick preview on or off without requiring theimage editing application to perform a modal switch. FIG. 5 illustratesthe master image 505 displayed after one of the above mentioned menuselection, short cut key, or icon is utilized to disable the quickpreview mode. As shown, in both FIGS. 3 and 5 the same image (asindicated by the selected thumbnail 310) is selected for display. Theimage display area 115, the thumbnail display area 105, the menus 130,the tools 135 and 515 also remain the same.

As can be appreciated from FIGS. 3 and 5, switching between quickpreview image and the master image does not cause a modal change in theuser interface. Instead, switching between the two images only causesthe displayed image and its associated visual cues to be changed withoutchanging the appearance of the user interface of the image editingapplication. In both cases, the same user interface layout ismaintained. The general appearance of the screen and the associatedtools, menus, controls, and icons remain the same. In other words, theworkspace when the quick preview is enabled or disabled does not change.Instead, only certain tools and display of certain information areturned on or off.

Also, when a quick preview image is displayed, some or all of theediting tools in some embodiments are disabled to prevent makingadjustments to the images. As shown in FIG. 5, a set of image editingtools 515 are available for editing the master image 505. FIG. 3 alsodisplays, without a modal change to the user interface, the same editingtools 515 except that the tools are disabled (shown as grayed out toindicate that the quick preview image 305 cannot be edited).

C. Saving Time and Resources Associated With Loading an Image

When an image is selected for display in the image display area, someembodiments first display a regular thumbnail image as the larger masteris being loaded from the storage and adjusted for display. Someembodiments make these adjustments each and every time an image is beingloaded. Also, when the original is in raw format, the raw image file hasto be decoded prior to applying the adjustments.

Once the master image is fully accessed, then the master is displayed onthe screen. The process of displaying the thumbnail and the master cancause a delay when the master image is large and/or requiresadjustments. As a result, for some master images, the image displayed inthe image display area might not be sharp for at least a few seconds.

FIG. 6 illustrates an image that is being loaded for display in theimage display area 115 of some embodiments. Some embodiments provide avisual cue 610 to indicate that the image is being loaded. As shown,during the loading process, a thumbnail image 615 which is not as sharpas the master image is displayed in the image display area 115. While amaster image is being loaded, the editing tools 515 are temporarilydisabled as indicated by these editing tools 515 being grayed out. FIG.7 illustrates the master image after being loaded. As shown, the image705 is sharp and the editing tools 515 are enabled. The delay associatedwith displaying a large master image becomes more significant when auser has to go through several master images to sort, stack, select, orotherwise manipulate them.

The quick preview not only saves time and resources by foregoing theloading of the master image, but also saves time and resources in someembodiments by foregoing numerous ancillary processes that the imageediting application performs in some embodiments in conjunction with theloading of the master image. These processes include database queriesfor the image metadata, processes required to analyze and display theimage metadata, processes to compute and display statistical information(such as histograms) for the image. Some or all of these processes areskipped in some embodiments to further save resources as well as tospeed up loading of the quick preview image. For instance, FIG. 7 alsoshows a histogram 720. As described in Section II, histograms displaydistribution of pixel values in the image. The histogram forluminescence that is displayed in FIG. 7 shows a curve that depictsdifferent pixel values from black to white. In some embodiment, displayof this histogram is skipped when the image is displayed when the quickpreview is enabled. As can be seen, this histogram is not shown when thequick preview image 305 is displayed in FIG. 3.

Instead of displaying the large master image which takes a long time anda lot of resources to load, a quick preview image can be displayed. Thequick preview tool allows users to speed up the image editing process.This is because a user can activate the quick preview tool to load andreview images quickly in the display area when the user does not need tomake any edits to the images, while deactivating the quick preview toolto load images in their entirety when the user wishes to view them intheir entirety. A user might wish to view an image instead of itspreview in the display area because the user wishes to edit the imageand the editing application of some embodiments allows a user to specifyimage modifications to only the actual images and not their previews.

D. Visual Cues for Quick Preview Mode

FIG. 8 illustrates a quick preview image 805 that is displayed when thequick preview is enabled in some embodiments. In the figure, the quickpreview is identified by several visual indicators. For instance, aQuick Preview mark 810 is placed on the image display area 115 toindicate that quick preview is turned on.

Also, the thumbnail 145 of the displayed image 805 is identified with adifferent highlight (or different border color) when the quick previewmode is on. For instance, the thumbnail of a displayed image may behighlighted with a yellow border 815 when quick preview is activated.However, when quick preview is not enabled, the thumbnail is highlightedwith a different color, e.g., with a white border.

Some embodiments provide an option to place a mark on the image toindicate that a master image is displayed and, therefore, infer thatquick preview is disabled. For instance, FIG. 9 illustrates a masterimage displayed on full screen when the quick preview is disabled insome embodiments. As shown, a visual cue 905 is optionally placed on theimage to indicate that the currently displayed image is a master imageand, therefore, quick preview is disabled.

Furthermore, some embodiments provide additional ways to aid inidentifying whether quick preview is turned on or off. FIG. 10illustrates a master image displayed on full screen when the quickpreview is disabled in some embodiments. When the cursor (not shown) ismoved towards the upper part of the screen, a menu 1005 is displayed. Asshown, a set of editing tools 1010 are activated. Also, an icon 1015which turns the visual cue 905 on or off is highlighted (e.g., with alight background) to indicate that the quick preview is off and masterimages can be identified by turning visual cue 905 on. Also, anothericon 1020 that switches the quick preview on or off is highlighted(e.g., shown by a lighter background) to indicate that quick preview iscurrently turned off.

In contrast, FIG. 11 illustrates the image of FIG. 10 when the quickpreview is turned on. When the cursor (not shown) is moved towards theupper part of the screen, the menu 1005 is displayed. Because quickpreview is enabled, the set of editing tools 1010 is shown as disabled(i.e., the associated icons are grayed out). Furthermore, the visual cue905 (shown in FIGS. 9 and 10) is no longer displayed. In addition, theicon 1015 in FIG. 11 is highlighted differently than in FIG. 10 (e.g.,is highlighted with a darker background) to indicate that quick previewis disabled. Also, icon 1020 which is used to switch quick preview on oroff is highlighted differently (e.g., is highlighted with a darkerbackground) than in FIG. 11.

Also, some embodiments place a mark (e.g., a “P”) on the image toindicate that quick preview is activated. FIG. 12 illustrates a quickpreview image displayed in full screen mode in some embodiments. Asshown, a visual cue 1205 (letter “P”) is placed on the image to indicatethat quick preview is activated. Some embodiments provide options toturn such an indication on or off.

Some embodiments also highlight the displayed image with a differentcolor to distinguish a quick preview image from a master image. In someof these embodiments, the highlight is applied only when more than oneimage is displayed on the image display area at once. FIG. 13illustrates three quick preview images 1305-1315 displayed in the imagedisplay 115 area of some embodiments. As shown, the border 1320 of thecurrently selected image 1315 is highlighted with a certain color, e.g.,yellow.

In these embodiments, when the same three images are displayed with thequick preview disabled, the borders are highlighted with a differentcolor, e.g., white to provide a visual cue as to whether the quickpreview is on or off. Also, some embodiments in addition to highlightingthe currently selected image, highlight the other images in the imagedisplay area with the same color (e.g., the borders are highlighted withthe same color) but with a narrower border line to further identifywhich image is currently selected and whether the quick preview is on oroff. Also, as shown in FIG. 13, the borders of the three thumbnails1325-1335 associated with the displayed images 1305-1315 are alsohighlighted. Furthermore, the border of the thumbnail 1335 associatedwith the currently selected image 1315 is highlighted with a thickerborder to further identify the selected image.

Also, in some embodiments, when a quick preview image is displayed, someof the editing tools 515 (shown in FIG. 8) are disabled to preventmaking adjustments to the images. However, in some embodiments, a usercan still select and stack images, add keywords or change other metadataassociated with the image. FIG. 14 illustrates the user interface ofFIG. 8 with a set of tools selected for filtering 1410 as well as tools1405 adding/modifying captions 1415, keywords 1420, version name 1425,credit 1430, copyright notice 1435, and other metadata.

Filtering images allows a user to only display the thumbnails of certainimages that satisfy a certain criteria, e.g., the images that have acertain rating or keyword. Some embodiments also provide tools (notshown) for stacking images which allow a set of similar or relatedimages to be grouped together. The user can identify one image from astack to be selected for use. Also, some embodiments allow a group ofimages to be stacked together when they are imported into theimage-editing application.

E. Selecting the Size and Other Options for the Quick Preview Images

Some embodiments provide tools that allow a user to enable or disablegeneration of preview images, and to specify and modify the resolutionof the quick preview images. FIG. 15 illustrates the image-editingapplication of some embodiments. As shown, a menu option 1505 as well ashort cut key 1510 are provided to select a set of preferences.

FIG. 16 illustrates several preferences 1605 that some embodimentsprovide to allow a user to enable or disable preview image generationand to specify size of the preview image. A user can select a limit 1610for the resolution (or size) of the preview images. FIG. 17 illustratesexamples of several options 1705 that are provided for the resolution(or size) of the preview images in some embodiments. As an example, thequick preview tool of some embodiments provides the following differentsizes for a quick preview image: 1280 pixels, 1440 pixels, 1680 pixels,1920 pixels, 2560 pixels, half the dimensional size of the master image,and no limit (i.e., the size of the master image). In some embodimentswhen the master image is generated from a raw file and the quick previewimage is generated in JPEG format, the size of the quick preview imagemight become larger than the size of the master image. For instance, insome embodiments this happens because the master image is generated fromthe raw image based on raw (RAW) processing requirements and the JPEGquick preview is generated to have a multiple of eight rows. Under theseconditions, the actual size of the quick preview image for certainimages might become larger than the size of the master image when theuser selects no limit for the quick preview image size.

Selecting a size option other than no limit for the quick preview imagemay cause the quick preview and the master image to be of differentsizes. The displayed image 1625 in FIG. 16 is reduced to fit the viewingarea 115. FIG. 18 illustrates the same image 1805 at full size withquick preview turned on. This quick preview image is generated with theoption to set the quick preview size to half the size of the masterimage. FIG. 19 illustrates the master image 1905 when the quick previewis turned off. As shown, the size of the image 1805 displayed when quickpreview is on is smaller than the size of the corresponding master image1905.

As further shown in FIG. 16, a control 1615 is provided to select acompression quality for the preview images. When a compressed file(e.g., a JPEG format image) is generated, the compression quality can beset to maximum to generate larger and sharper image or can be set tolower quality levels to generate images with more artifacts in them butwith smaller files.

FIG. 16 also illustrates that some embodiments provide several otheroptions 1620 that allow a user to specify (1) whether preview imagesshall be generated for new projects, (2) whether embedded JPEG imagesfrom an importing device (e.g., a camera, a hard drive, memory card,etc.) shall be used for display when available, and (3) whether thepreviews shall be shared with other applications. Also, some embodimentsprovide the option for a user to turn generation of quick preview imageson or off for an existing project. In these embodiments, for theduration that the generation of quick preview images is inhibited, noquick preview images are generated.

F. Loupe

The quick preview operation also affects the operations of a loupe toolin some embodiments. The loupe tool is a scaling tool (or a magnifier)that is used to scale up or down portions of an image. FIG. 20illustrates a master image 2005 that is scaled to fit the size of theimage display area in some embodiments. FIG. 20 also shows a loupe tool2010. This loupe can be activated, for instance, by clicking on an icon2015. The loupe provides a center circle 2020 to select an area on theimage 2005 to be magnified. The loupe also can be adjusted for differentmagnification sizes in relation to the master image. For instance, asshown by the visual cue 2025, the loupe 2010 is set to magnify theselected area 2020 to 100% of the size of the same area in the masterimage.

FIG. 21 illustrates the selected area 2105 of the image displayed to100% the size of the same area of the full size master image. FIG. 22illustrates a scaled to fit image 2205 with quick preview activated insome embodiments. As shown, the same area 2210 of the image as in FIG.20 is selected for magnification. FIG. 23 illustrates the magnified area2305 of the image.

Different embodiments provide different options for displaying theloupe's enlarged area. Some embodiments display the enlarged area as itcorresponds to the quick preview image whenever the quick preview imageis available, while other embodiments always display the enlarged areaas it corresponds to the master image. Some other embodiments displaythe enlarged area using the quick preview image when the quick previewis on and display the enlarged area using the master image when thequick preview is off. Some embodiments provide options to selectivelychoose some or all of the above mentioned options to display theenlarged area. Also, some embodiments provide options to set the loupeto scale to a percentage of either the master image or the quick previewimage. In some embodiments, when the area enlarged by the loupecorresponds to the master image, a user can edit that area of the masterimage even when the quick preview is enabled.

Also, FIGS. 24 and 25 illustrate the same image displayed in full sizewith the quick preview turned on and off respectively. In this example,the loupe is set to enlarge the selected area of the image to 100% ofthe master image no matter whether the quick preview image or the masterimage is currently displayed. As shown, the preview image 2405 issmaller than the master image 2505. However, since the loupe is set to100% of the master image, the magnified areas 2410 and 2510 of the twoimages are the same size. Furthermore, these magnified areas 2410 and2510 are the same size as the magnified areas 2105 and 2305 of FIGS. 21and 23 respectively. Therefore, in some embodiments, no matter whetherthe displayed image is full size or scaled to fit and no matter whetherthe quick preview is on or off, the loupe magnifies the selected area ofthe image to the same size.

Also, the loupe can be set to scale the image to percentages other than100% of the size of master (or quick preview) images. FIG. 26illustrates a loupe that is set to enlarge to 200% (as shown by visualcue 2605) of the mater size in some embodiments. The image 2620 is amaster image and is displayed in full screen to actual size. Asindicated by the visual cue 2610, only a portion of the actual sizeimage fits in the full size screen. As shown, the loupe has enlarged theselected area 2615 to 200% of the master image size. Similarly, theloupe can be set to scale the selected area to less than 100% of themaster (or quick preview) image size.

IV. Quick Preview Processes

The preceding section illustrated the features of the quick preview toolin an image editing application of some embodiments. This sectiondescribes the quick preview processes of some embodiments of theinvention.

A. Performing Quick Preview

FIG. 27 conceptually illustrates a process 2700 for performing quickpreview in some embodiments. As shown, the process receives (at 2705) arequest to load an image for display in the image display area. Forinstance, such a request can be received when a user selects a thumbnailimage in the thumbnail display area of the image editing application ofFIG. 1. The process determines (at 2710) whether quick preview isenabled. When the quick preview is not enabled, the process in someembodiments loads and displays (at 2715) a regular thumbnail image at afirst resolution. This thumbnail is displayed in the image display areawhile the master image is being loaded. For instance, in someembodiments, this thumbnail image may have a resolution of 32 pixels,256 pixels, or 1024 pixels. Next, at 2720 the process loads and displaysthe master image in the image display area. The process then ends.

On the other hand, when the process determines (at 2710) that the quickpreview is enabled, the process (at 2725) disables editing tools andgrays out the editing controls on the display. Because the image editingapplication of some embodiments does not allow a user to specify imagemodifications when viewing preview images in the display area, theediting application of some of these embodiments makes the editing toolsnot accessible to a user when the quick preview tool has been selected.This also provides notification to the user that the quick preview toolhas been selected.

In conjunction with this notification, the image editing application ofsome embodiments provides other indications of the selection of thequick preview tool. Accordingly, the process provides (at 2730) theseother notifications. For instance, in some embodiments, the processhighlights (at 2730) a thumbnail of the image in the thumbnail displayarea (if the thumbnail area is displayed) with a distinct color toindicate the quick preview is enabled. In addition to highlighting thethumbnail, the process provides other visual cues, such as placing amark (e.g., a “Quick Preview” mark) on the display area, placing a mark(e.g., a “P”) on the image, etc.

Next, the process determines (at 2735) whether an updated quick previewimage is available. When an updated quick preview image is available,the process (at 2740) loads and displays a regular thumbnail image at asecond resolution while the quick preview image is being loaded fordisplay. This thumbnail image has the same resolution as the thumbnailimage loaded in step 2715 in some embodiments, while in otherembodiments the two thumbnail images have different resolutions. Afterthe quick preview image is loaded, the process displays (at 2745) thequick preview image in the image display area. The process then ends. Onthe other hand, if an updated quick preview image is not available(e.g., generation of quick preview images was suppressed when the imagewas imported or last edited) then the process (at 2750) loads anddisplays a regular thumbnail at a third resolution. This thumbnail imagehas the same resolution as the thumbnail images loaded in steps 2715 and2740 in some embodiments, while in other embodiments the thumbnailimages have different resolutions. The process then ends.

B. Generation of Quick Preview Image

Different embodiments generate the quick preview image differently. Insome embodiments, the image editing application generates the quickpreview image in the background a time interval after an editingoperation is performed. Some embodiments generate the quick previewimage when a master image is rendered and there is no up-to-date quickpreview image. Some embodiments also generate a quick preview image whenan image is imported or when a new project is generated. Also, someembodiments provide an option for a user to turn generation of quickpreview images on or off. In these embodiments, for the duration thatthe generation of quick preview images is inhibited, no quick previewimages are generated. These embodiments are described further below.

1. Generation of Quick Preview Immediately After an Editing Operation isPerformed

Some embodiments generate a quick preview image a time interval after anediting operation is performed. In these embodiments, once a quickpreview is generated for an image, the quick preview image is saved andis not updated until the master image is edited again.

FIG. 28 conceptually illustrates a process 2800 for generating quickpreview images in some embodiments. As shown, the process receives anindication that editing operation is performed on the master image.Next, the process determines (at 2807) whether generation of quickpreview images is suppressed. When the generation of quick previewimages is suppressed, the process ends. On the other hand, the processgenerates (at 2810) a quick preview image.

In some embodiments, the quick preview image is generated in thebackground a predetermined amount of time after an editing operation isperformed. For instance, a user might select a cropping tool and drag itacross an image. When the user continues using the same tool or anotherediting tool within the predetermined time interval, no quick preview isgenerated. On the other hand, when the user does not use the same oranother editing tool after the predetermined time, a quick preview imageis generated. After the quick preview is generated, if the usercontinues to use editing tool, the quick preview is updated wheneverthere is no editing activity within the predetermined time interval.Also, instead of using the predetermined time interval to generate thequick preview image, some embodiments wait until all editing operationsare done (e.g., when a non-editing tool is selected) before generatingthe quick preview image. a user completes. Next, the process stores (at2815) the quick preview image for use when the quick preview is enabled.The process then ends.

2. Generation of Quick Preview Image When a Master Image is Rendered

Whenever an up-to-date quick preview is not available and a master imageis displayed, some embodiments generate a new updated quick previewimage from the master image. FIG. 29 conceptually illustrates a process2900 for generating the quick preview image in these embodiments. Asshown, the process receives (at 2905) an indication that a master imagehas been rendered. For instance, this might happen when the quickpreview is off and an image is selected for display. The processdetermines (at 2910) whether an updated quick preview image isavailable. If an updated quick preview image with all currentadjustments exists, the process ends. Otherwise, the process determines(at 2915) whether the generation of quick preview images is suppressed.When the generation of the quick preview images is suppressed, theprocess ends. Otherwise, the process generates (at 2920) an updatedquick preview image. Next, the process stores (at 2925) the quickpreview image for future use when the quick preview is enabled. Theprocess then ends.

3. Generation of Quick Preview While Importing Images

Some embodiments provide an image importing tool for importing imagesinto one of the databases of the image editing application. FIG. 32illustrates the importing tool of some embodiments. As shown, the toolallows importing images 3205 from one or more devices 3210. Theseimporting source devices might be devices such as cameras, memory cards,hard drives, image scanners, etc. Furthermore, as described in SectionIII above, some embodiments provide options to generate quick previewimages while importing images into the image-editing application or whencreating a new image-editing project.

FIG. 30 conceptually illustrates a process 3000 that is used to importan image into an image database of the image-editing application of someembodiments. As shown, the process imports (at 3010) the image from theimporting source. Next, the process determines (at 3015) whether a highresolution thumbnail for the imported image is available from theimporting source. When a high resolution thumbnail is available, theprocess selects (at 3020) this high resolution thumbnail for temporaryuse to display when the quick preview is enabled. Such a high resolutionembedded image is, e.g., available from many cameras. When later on, thequick preview is enabled and the image being imported is selected fordisplay, some embodiments use this thumbnail for display when no quickpreview image is available for the image. When no high resolution imagesare available, the process selects (at 3025) the best resolutionthumbnail that is available for the device for temporary use to displaywhen the quick preview is enabled.

At 3035, the process determines whether generation of quick previewimages is suppressed. For instance, as described in the previoussections, some embodiments provide an option for a user to selectivelysuppress generation of quick preview images. A user might select such apreference when the user wishes to speed up the importing process. Whenthe generation of quick preview images is suppressed, the process ends.When the generation of quick preview images is not suppressed, theprocess generates (at 3045) a quick preview image. Next, the processstores (at 3050) the quick preview image for further use. The processthen ends.

Process 3000 is a conceptual process. Although steps 3010-3050 are shownto be performed by one process, to import a number of images someembodiments employ a set of one or more processes to import the images(step 3010) while employ another set of one or more processes forthumbnail selection (steps 3015-3025) and quick preview image generation(steps 3035-3050). Accordingly, image import, thumbnail selection, andquick preview generation might be performed (as shown in FIG. 30) foreach image prior to image import, thumbnail selection, and quick previewgeneration for the next image. Alternatively, one or more of theseprocesses might be performed for some or all images before performingthe other processes for the rest of the images. Also, some embodimentsperform image import, thumbnail selection, and/or quick previewgeneration in batch mode for some or all images.

Although the above process was described with reference to importingimages into the image-editing application, a person of ordinary skill inthe art would realize that a similar process can be used to create newprojects. For instance, in the case of a new project, the process mightcopy images from another project or library.

C. Generation of Quick Preview Images with Different Sizes

As described above, some embodiments allow the user to change the sizesfor the quick preview image. Also some embodiments store quick previewimages and do not update them until the master image is edited. As aresult, some embodiments may have (1) different images with differentsized quick preview images at any given time, and (2) the same imagewith different quick preview image sizes at different times.

FIG. 31 conceptually illustrates a process 3100 for changing the size ofquick preview images in some embodiments. The process is described withreference to an exemplary scenario that results in two different imagesto have corresponding quick preview images with different sizes. Asshown, the process receives (at 3105) a request to set the size of thequick preview images to a first size. For instance, the first size mightbe 1280 pixels. The process sets the default size of the quick previewimages to the first size. Any subsequent quick preview image isgenerated by using the first size. Next, an image (e.g., image A) isedited (at 3110). After this image is edited, the quick preview toolgenerates or updates (at 3115) the quick preview image for image A. Thisquick preview image has the first size and is saved to be used todisplay image A when quick preview is activated.

Next, the process receives (at 3120) a request to set the quick previewimage size to a second size. For instance, the second size might be 1920pixels. Any subsequent quick preview image is generated by using thesecond size. Next, at 3125 another image, e.g., image B is edited. Afterthis image is edited, at 3130 the quick preview image corresponding toimage B is generated or updated. This quick preview image will have thesecond size and will be stored to be used when image B is later ondisplayed after quick preview is later on activated.

Next, a request is received (at 3135) to activate quick preview and thequick preview is activated. Subsequently, a request is received (at3140) to display image A. Since image A has not been edited after thequick preview sizes was changed to the second size, the quick previewimage corresponding to image A is still stored and is loaded anddisplayed with the first size (in this example, 1280 pixels). Next, arequest is received (at 3145) to display image B. Since the quickpreview of image B was generated with the second size, the quick previewof image B is displayed in the second size (in this example, 1920pixels). As demonstrated by the exemplary scenario of FIG. 31, for theembodiments that do not update quick preview images until thecorresponding master image is edited, different images can have quickpreview images of different sizes.

D. Zoom

Some embodiments provide quick ways of changing the displayed size of animage by using a zoom tool. FIG. 33 conceptually illustrates a process3300 for zooming a displayed image in some embodiments. As shown, theprocess receives (at 3305) a command to zoom an image displayed in theimage display area. For instance this command might be a menu selection,click on an icon, hitting a short cut key (e.g., “Z”), etc. Next, theprocess determines (at 3310) whether the quick preview is on. When theprocess determines that the quick preview is on, the process proceeds to3315 which is described below. On the other hand, when the processdetermines that the quick preview is not on, the process determines (at3325) whether the image is already zoomed to a predetermined size of themaster image. In some embodiments, the predetermined zoom size is userselectable. For instance, some embodiments provide several options forthe user to set the zoom to a size that is 100%, less than 100%, or morethan 100% of the maximum image size.

In some embodiments, when the image is already zoomed, the process exits(not shown). In some other embodiments, instead of exiting, the processtoggles between the predetermined zoom size and the size that the imagehad prior to being scaled to the predetermined size (e.g., the scaled tofit size). In these embodiments, when the image is already zoomed andanother command to zoom is received, the image is scaled back (at 3335)to the size that the image had prior to being zoomed to thepredetermined size (i.e., prior to receiving the previous zoom command).When the process determines (at 3325) that the image is not alreadyzoomed, the image is scaled to the predetermined size of the masterimage. The process then exits.

When the process determines (at 3310) that the quick preview is on, theprocess determines (at 3315) whether the image is already zoomed to apredetermined size of the quick preview image. In some embodiments, whenthe image is already zoomed, the process exits (not shown). In someother embodiments, instead of exiting, the process toggles between thepredetermined zoom size and the size that the image had prior to beingscaled to the predetermined size (e.g., the scaled to fit size). Inthese embodiments, when the image is already zoomed and another commandto zoom is received, the image is scaled back (at 3340) to the size thatthe image had prior to being zoomed to the predetermined size (i.e.,prior to receiving the previous zoom command). Yet, some otherembodiments perform additional steps (not shown) between steps 3315 and3340. In these embodiments, when the quick preview is enabled and theimage is already zoomed to the predetermined size of the quick previewimage, a subsequent zoom command would cause the image to be furtherzoomed to a predetermined size of the master image. Referring back toFIG. 33, when the process determines (at 3315) that the image is notalready zoomed, the image is scaled to the predetermined size of thequick preview image. The process then exits. The use of zoom and theability to switch between the quick preview and master images (e.g., asdescribed in Section III.B) creates a workflow sequence for a user toquickly display details of an image. For instance, when quick preview ison and a scaled to fit image is displayed (e.g., as shown in FIG. 8),the user can use the zoom tool to zoom to full size of the quickpreview. If the user wants to see more details, the user can turn quickpreview off to see the image to the full size of the master image. Thezoom process 2700 was described for zooming a master (or a quickpreview) image by scaling the master image (or the quick preview image)to a desired percentage. However, similar to the loupe tool described inSection III.F above, the zoom process in some embodiments provides theoption to scale a displayed master image to a quick preview image or toscale a quick preview image to a master image.

E. Automatic Exit from Quick Preview

While the editing application of some embodiments does not allow a userto perform image modifications when the quick preview tool has beenactivated, the editing application of other embodiments can allow a userto specify such modifications while providing quick previews. Moreover,even some embodiments that do not allow modifications during quickpreview, do allow a user to exit quick preview by selecting all or someof the editing tools. These embodiments do not make the editing toolsinaccessible during quick preview.

Specifically, the image editing application of some embodiments providesan automated way of exiting quick preview by detecting that the userwants to perform operations (e.g., edit operations) that would requirethe actual image to be loaded in the display area. Some of theseembodiments not only have the editing application exit quick preview inan automated way, but also have the application enter quick preview inan automated way. For instance, in some embodiments, the applicationexits quick preview when the user selects an editing tool for editing animage, but automatically re-enter quick preview after the user hasfinished editing the image (e.g., by selecting a non-editing tool).

FIG. 34 conceptually illustrates a process that allows editing of animage when the quick preview is activated in some embodiments. As shown,the process receives (at 3405) an indication that quick preview isenabled. Next, the process displays (at 3410) the quick preview imagefor the currently selected image. The process also provides (at 3415)some or all of the editing tools that are available to edit an image.

At 3420, the process determines whether an editing tool is selected.When no editing tools are selected, the process remains (at 3425) inquick preview. For any subsequent image that is selected the quickpreview image is displayed. Any non-editing action (e.g., ranking animage or adding a keyword) leaves the quick preview activated. It shouldbe appreciated that receiving an indication that the quick preview isdeactivated (e.g., when a short cut key is hit or an icon is clicked toleave quick preview) causes the quick preview to be disabled. This isnot shown in FIG. 34 for simplicity.

When the process determines (at 3420) that an editing tool is selected,the process automatically exits (at 3430) the quick preview and loadsthe master image for editing. Some embodiments leave the quick previewdisabled until an indication (such as clicking an icon or hitting ashort cut key) is received to indicate that the quick preview isenabled. These embodiments, exit process 3400 after 3430. Some otherembodiments, however, automatically re-enter after the editing is over.In these embodiments, the process determines (at 3435) whether theediting is completed. For instance, the user might select severalediting tools (at 3420) and then select a non-editing tool (at 3435). Aslong as the editing is not completed, the process keeps (at 3440) themaster image loaded for editing. On the other hand, when the processdetermines that the editing is completed, the process automaticallyre-enters (at 3445) the quick preview by enabling quick preview anddisplaying the quick preview image. The process then proceeds to 3410that was described above.

V. Computer System

FIG. 35 conceptually illustrates a computer system with which someembodiments of the invention are implemented. The computer system 3500includes a bus 3505, a processor 3510, a system memory 3515, a read-onlymemory 3520, a permanent storage device 3525, input devices 3530, andoutput devices 3535. In some embodiments, the computer system alsoincludes a graphic processing unit (GPU) 3575.

The bus 3505 collectively represents all system, peripheral, and chipsetbuses that support communication among internal devices of the computersystem 3500. For instance, the bus 3505 communicatively connects theprocessor 3510 with the read-only memory 3520, the system memory 3515,and the permanent storage device 3525.

From these various memory units, the processor 3510 (also referred to ascentral processing unit or CPU) retrieves instructions to execute anddata to process in order to execute the processes of the invention. Theread-only-memory (ROM) 3520 stores static data and instructions that areneeded by the processor 3510 and other modules of the computer system.The permanent storage device 3525, on the other hand, is aread-and-write memory device. This device is a non-volatile memory unitthat stores instruction and data even when the computer system 3500 isoff. Some embodiments of the invention use a mass-storage device (suchas a magnetic or optical disk and its corresponding disk drive) as thepermanent storage device 3525. Other embodiments use a removable storagedevice (such as a floppy disk or zip® disk, and its corresponding diskdrive) as the permanent storage device.

Like the permanent storage device 3525, the system memory 3515 is aread-and-write memory device. However, unlike storage device 3525, thesystem memory is a volatile read-and-write memory, such as a randomaccess memory. The system memory stores some of the instructions anddata that the processor needs at runtime.

Instructions and/or data needed to perform processes of some embodimentsare stored in the system memory 3515, the permanent storage device 3525,the read-only memory 3520, or any combination of the three. For example,the various memory units may contain instructions for processingmultimedia items in accordance with some embodiments. From these variousmemory units, the processor 3510 retrieves instructions to execute anddata to process in order to execute the processes of some embodiments.

The bus 3505 also connects to the input and output devices 3530 and3535. The input devices enable the user to communicate information andselect commands to the computer system. The input devices 3530 includealphanumeric keyboards, touch panels, and cursor-controllers. The inputdevices 3530 also include scanners through which an image can be inputto the computer system. The output devices 3535 display images generatedby the computer system. For instance, these devices display IC designlayouts. The output devices include printers, pen plotters, laserprinters, ink-jet plotters, film recorders, and display devices, such ascathode ray tubes (CRT), liquid crystal displays (LCD), orelectroluminescent displays.

Also, as shown in FIG. 35, bus 3505 also couples computer 3500 to anetwork 3565 through a network adapter (not shown). In this manner, thecomputer can be a part of a network of computers (such as a local areanetwork (“LAN”), a wide area network (“WAN”), or an Intranet) or anetwork of networks (such as the Internet). Finally, as shown in FIG.35, the computer system in some embodiments also optionally includes agraphics processing unit (GPU) 3575. A GPU (also referred to as a visualprocessing unit or a display processor) is a dedicated graphicsrendering device which is very efficient in manipulating and displayingcomputer graphics. The GPU can be included in a video card (not shown)or can be integrated into the mother board of the computer system alongwith the processor 3510. Also, the computer system 3500 may be used as apersonal computer, a workstation, a game console, or the like. Someembodiments store computer program instructions (such as instructionsfor implementing the above mentioned image editing and image managementapplications) in a machine-readable or computer-readable medium.Examples of machine-readable media or computer-readable media include,but are not limited to magnetic media such as hard disks, memorymodules, magnetic tape, optical media such as CD-ROMS and holographicdevices, magneto-optical media such as optical disks, and hardwaredevices that are specially configured to store and execute program code,such as application specific integrated circuits (ASICs), programmablelogic devices (PLDs), ROM, and RAM devices. Examples of computerprograms or computer code include machine code, such as produced by acompiler, and files including higher-level code that are executed by acomputer, an electronic component, or a microprocessor using aninterpreter. Any or all of the components of computer system 3500 may beused in conjunction with the invention. However, one of ordinary skillin the art will appreciate that any other system configuration may alsobe used in conjunction with the invention.

While the invention has been described with reference to numerousspecific details, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms without departingfrom the spirit of the invention. In other places, various changes maybe made, and equivalents may be substituted for elements describedwithout departing from the true scope of the present invention.

For instance, instead of JPEG or TIFF formats, an image might be inJPEG2000, PNG, GIF, PSD, HD Photo, or any other formats known in theart. Different sizes of quick preview images might be used. Differentvisual cues might be used to identify when the quick preview is enabledor disabled. Also, the user interface described in different figuresmight be changed without deviating from the teachings of the invention.Thus, one of ordinary skill in the art would understand that theinvention is not limited by the foregoing illustrative details, butrather is to be defined by the appended claims.

1. A method of previewing a plurality of images, the method comprising:providing a display area for displaying the images; and providing apreview tool which when disabled causes a selected image to be displayedin the display area and when enabled foregoes display of the selectedimage and causes a display of a preview image corresponding to theselected image.
 2. The method of claim 1, wherein at least a size of afirst preview image of a first image is different than a size of asecond preview image of a second image.
 3. The method of claim 1,wherein a size of a first preview image of a particular image at a firstpoint of time is different than a size of a second preview image of theparticular image at a second point of time.
 4. The method of claim 1,wherein user adjustments need to be made to a particular image beforethe particular image is displayed in the display area, wherein saidadjustments are made to the selected image after the image is selectedfor display, wherein said adjustments are made to the preview imagebefore the image is selected for display.
 5. The method of claim 1,wherein user adjustments need to be made to a particular image beforethe particular image is displayed in the display area, wherein saidadjustments are made to the preview image before the image is selectedfor display, the method further comprising: based on the image currentlyselected for display, determining a set of images that are candidate tobe selected next for display; and applying user adjustments to said setof candidate images. 6 The method of claim 5, wherein said determiningis done using a heuristic method.
 7. The method of claim 1, the previewtool for generating preview images, the method further comprisingproviding an option for changing a size of preview images generated bythe preview tool.
 8. The method of claim 1, the preview tool forgenerating preview images, the method further comprising providing anoption for changing a compression quality of the preview imagesgenerated by the preview tool.
 9. The method of claim 1 furthercomprising providing a user interface for editing a set of images, thepreview tool for displaying the image and the preview image on thedisplay area at different times without requiring a modal change in thedisplay area and in the user interface.
 10. The method of claim 9,wherein the preview tool is for providing a same set of tool, menus,controls, and icons during display of an image and during display of apreview image.
 11. The method of claim 1, wherein the image requiresprocessing a set of metadata after being selected for display and priorto being displayed, wherein the preview tool is for skipping saidmetadata processing prior to displaying the preview image.
 12. Themethod of claim 1, wherein the image is in a raw format which requiresdecoding into a color space prior to being displayed, wherein thepreview image does not require decoding into a color space prior tobeing displayed.
 13. The method of claim 1, wherein the image is in araw format which represents image pixels as a mosaic of pixel values,wherein the image in raw format requires demosaicing prior to beingdisplayed, wherein the preview image does not require demosaicing priorto being displayed.
 14. The method of claim 1, wherein the image is in araw format, wherein the image in raw format requires processing fornoise reduction prior to being displayed.
 15. The method of claim 1,wherein the image is in a raw format, wherein the image in raw formatrequires processing for color correction prior to being displayed. 16.The method of claim 1, wherein the image and the preview image are in asame format but the preview image has less data than the image.
 17. Themethod of claim 1, wherein the image format is one of JPEG and TIFF. 18.The method of claim 1, wherein the preview image format is one of JPEGand TIFF.
 19. The method of claim 1, wherein the image format is one ofJPEG2000, PNG, GIF, PSD, and HD Photo.
 20. The method of claim 1,wherein the preview image format is one of JPEG2000, PNG, GIF, PSD, andHD Photo.
 21. The method of claim 1 further comprising providing adisplay area for displaying a histogram showing a distribution of pixelvalues in the image, the preview tool for skipping display of thehistogram when a preview image is being displayed.
 22. The method ofclaim 1, wherein the preview tool is for generating a preview image fora particular image when an updated preview image is not available for aparticular image and the particular image is rendered for display. 23.The method of claim 22 further comprising providing an option forenabling and disabling generation of preview images, wherein the previewtool is for generating a preview image only when generation of previewimages is enabled.
 24. The method of claim 1 further comprisingproviding a set of tools for editing an image, the preview tool forenabling the editing tools when an image is displayed and for disablingthe editing tools when a preview image corresponding to the image isdisplayed.
 25. The method of claim 1 further comprising providing ascaling tool for scaling a selected portion of a displayed image. 26.The method of claim 25, the scaling tool for displaying the selectedportion of the image at a different scale than a non-selected portion ofthe image.
 27. The method of claim 25, the preview tool for displaying anon-selected portion of the displayed image from a particular image andthe scaling tool for scaling the selected portion of the image from acorresponding portion of a preview image.
 28. The method of claim 25,the scaling tool for scaling the selected portion of the image from aparticular image and the preview tool for displaying a non-selectedportion of the image from a corresponding preview image.
 29. The methodof claim 28 further comprising providing a set of tools for editing thescaled portion of the image.
 30. The method of claim 1, wherein thepreview tool is for generating a preview image for a particular imageafter the particular image is edited.
 31. The method of claim 30,wherein the preview tool is for generating the preview image for theparticular image a predetermined time interval after an editingoperation is performed on the image.
 32. The method of claim 30, whereinthe preview tool is for generating the preview image for the particularimage after receiving an indication that editing operations arecompleted on the particular image.
 33. The method of claim 32, whereinthe preview tool is for receiving said indication when a non-editingtool is selected.
 34. The method of claim 30 further comprisingproviding an option for enabling and disabling generation of previewimages, wherein the preview tool is for generating a preview image onlywhen generation of preview images is enabled.
 35. A method comprising:providing a display area for displaying images; providing a set of toolsfor editing a displayed image; and providing a preview tool forautomatically replacing a display of a preview image with a display of amaster image corresponding to the preview image when an editing tool isselected while the preview image is being displayed.
 36. The method ofclaim 35, wherein the preview tool is for automatically displaying thepreview image after (1) the quick preview was automatically replaced bythe image and (2) receiving an indication that editing of the image iscompleted.
 37. The method of claim 36, wherein the preview tool is forreceiving said indication when a non-editing tool is selected.
 38. Agraphical user interface (GUI) of a computer program stored in acomputer readable medium, the computer program for execution by at leastone processor, the computer program for previewing a set of images, theGUI comprising: a display area for displaying the images; and a previewtool which when disabled causes a selected image to be displayed in thedisplay area and when enabled foregoes display of the selected image andcauses a display of a preview image.
 39. The GUI of claim 38 furthercomprising an option for changing a size of the preview image.
 40. TheGUI of claim 38 further comprising an option for changing a compressionquality of the preview image.
 41. The GUI of claim 38 further comprisinga user interface for editing a set of images, wherein the GUI does notmake a modal change in the display area and in the user interface whendisplaying the selected image and the preview image.
 42. The GUI ofclaim 38 further comprising a tool for importing a set of images from adevice, the preview tool for causing a thumbnail image to be displayedin the display area when the preview tool is enabled and the devicesincludes a thumbnail image of an image being imported, the preview toolfor causing the image being imported to be displayed in the display areawhen the preview tool is disabled.
 43. The GUI of claim 38 furthercomprising: a tool for importing a set of images from a device; and atool to determine whether generation of preview images is to besuppressed; the quick preview tool for causing a preview image to begenerated for an image that is being imported when the generation ofpreview images is not suppressed.
 44. The GUI of claim 38, wherein theimage is an original image, the GUI further comprising a tool forscaling a selected portion of an image displayed in the image area. 45.The GUI of claim 44, wherein the displayed image is the original image,the scaling tool for scaling and displaying the selected portion fromthe preview image.
 46. The GUI of claim 44, wherein the displayed imageis the preview image, the scaling tool for scaling and displaying theselected portion from the original image.
 47. The GUI of claim 46further comprising a set of tools for editing the scaled portion of theimage.